package LineCode.剑指Offer.代码的鲁棒性;

import LineCode.剑指Offer.Utils.ListNodeUtil;
import LineCode.剑指Offer.dto.ListNode;

/**
 * 输入两个单调递增的链表，输出两个链表合成后的链表，当然我们需要合成后的链表满足单调不减规则
 */
public class 合并两个排序的链表 {

    public static void main(String[] args) {
        ListNode note1 = ListNodeUtil.makeListNode(new int[]{1,5,6,8,7});
        ListNode note2 = ListNodeUtil.makeListNode(new int[]{2,3,4,5,6});
        ListNodeUtil.printListNode(Merge(note1, note2));
    }

    public static ListNode Merge(ListNode list1, ListNode list2) {
        if (list1 == null)
            return list2;
        if (list2 == null)
            return list1;
        if (list1.val > list2.val) {
            list2.next = Merge(list1, list2.next);
            return list2;
        } else {
            list1.next = Merge(list1.next, list2);
            return list1;
        }

    }
}
